package com.handsome.职责链模式.spring源码;

import org.springframework.web.servlet.DispatcherServlet;

/**
 * @author niechun
 * @date 2023/3/27 21:29
 */
public class Source {
    public static void main(String[] args) {
        /**
         * springmvc的源码中用到了职责链模式
         *
         *
         （1）当用户通过浏览器发起一个HTTP请求，请求直接到前端控制器DispatcherServlet；
         （2）前端控制器接收到请求以后调用处理器映射器HandlerMapping，处理器映射器根据请求的URL找到具体的Handler，并将它返回给前端控制器；
         （3）前端控制器调用处理器适配器HandlerAdapter去适配调用Handler；
         （4）处理器适配器会根据Handler去调用真正的处理器去处理请求，并且处理对应的业务逻辑；
         （5）当处理器处理完业务之后，会返回一个ModelAndView对象给处理器适配器，HandlerAdapter再将该对象返回给前端控制器；这里的Model是返回的数据对象，View是逻辑上的View。
         （6）前端控制器DispatcherServlet将返回的ModelAndView对象传给视图解析器ViewResolver进行解析，解析完成之后就会返回一个具体的视图View给前端控制器。（ViewResolver根据逻辑的View查找具体的View）
         （7）前端控制器DispatcherServlet将具体的视图进行渲染，渲染完成之后响应给用户（浏览器显示）。

         */
        DispatcherServlet dispatcherServlet=new DispatcherServlet();

    }
}
